package com.spring.authManage.dao;

import java.util.List;
import java.util.Map;

import com.spring.authManage.pojo.UserInfo;
import com.spring.authManage.pojo.UserRoleInfo;

/**
 * 用户管理，用户权限分配dao层接口
 *
 */
public interface UserInfoDao {
	/**
	 * 根据条件查询用户
	 * @param param
	 * @return
	 */
	public UserInfo queryUserInfoByParam(UserInfo userInfo) throws Exception ;
	/**
	 * 添加用户
	 * @param userInfo
	 */
	public void addUserInfo(UserInfo userInfo) throws Exception ;
	/**
	 * 修改后台登陆用户密码
	 * 
	 * @param userInfo
	 * @return int
	 */
	public int updatePwd(Map<String,Object> map) throws Exception;
	
	/**
	 * 重置密码
	 * 
	 * @param userInfo
	 * @return int
	 */
	public void resetPwd(Map<String,Object> map) throws Exception;
	/**
	 * 根据用户登录账号查询用户信息
	 * @param username
	 * @return
	 */
	public UserInfo queryUserInfoByUserName(String userName) throws Exception ;
	/**
	 * 根据用户ID获取用户信息
	 * @param userId
	 * @return
	 */
	public UserInfo queryUserInfoByUserId(String id) throws Exception ;
	/**
	 * 更新用户信息
	 * @param userInfo
	 * @return
	 */
	public void updateUserInfo(UserInfo userInfo) throws Exception ;
	/**
	 * 删除用户所有角色
	 * @param userId
	 */
	public void deleteUserRoles(String userId) throws Exception ;
	/**
	 * 分配用户角色
	 * @param infos
	 */
	public void addUserRoles(List<UserRoleInfo>infos) throws Exception ;
	
	/**
	 * 根据user_id获取用户角色
	 * @param user_id
	 * @return
	 */
	public List<UserRoleInfo> queryUserRoleInfoByUserId(String user_id) throws Exception ;

	/**
	 * 根据USERNAME查询用户存在个数
	 * @param userName
	 * @return
	 */
	public Integer countExistUserByUserName(UserInfo userInfo) throws Exception ;
	
	/**
	 * 删除用户
	 * @param userInfo
	 * @return
	 */
	public void deleteUser(String id) throws Exception ;
	/**
	 * 重启用户
	 * @param userInfo
	 * @return
	 */
	public void restartUser(String id) throws Exception ;
	
	
}
